package com.xquant.pricing.utils;

/**
 * 错误码及消息码定义类。<br/>
 * 在此类中定义了系统发生的各类错误的错误码及消息码，在此类中集中定义以便管理。<br/>
 * 错误码作为IRBaseException及其子类的构造参数传入，
 * 在资源文件中需要定义错误码对应的消息，使的可以通过IRBaseException的getShowMessage()方法获得错误消息。
 *
 * @version 0.1 2013-2-20
 * @author mohb
 *
 */
public class MessageCode {

    /**
     * 通用消息。
     */
    public final static String MESSAGE_SUCCESS = "common.operate.success";

    public final static String MESSAGE_FAIL = "common.operate.fail";

    /**
     * 系统级别错误码。
     */
    /** 未定义错误信息的异常, 无法取得catch到的异常的错误码及错误信息时默认返回此errorCode。 */
    public final static String ERROR_NOT_DEFINE_MSG = "error.msg.not.define";
    /** 程序代码错误。 */
    public final static String ERROR_PROGRAM_CODE_ERROR = "error.program.code.error";
    /** 请求中的参数不合法。 */
    public final static String ERROR_REQUEST_PARAME_BIND_EXCEPTION = "error.request.parame.bind.exception";
    /** 查询的记录不存在。 */
    public final static String ERROR_REQUEST_RECORD_NOT_FOUND = "error.request.record.not.found";
    /** 数据错误,记录必须存在且唯一。 */
    public final static String ERROR_RECORD_NOT_EXIST_OR_NOT_UNIQUE = "error.record.not.exist.or.not.unique";
    /** 远程服务调用失败。 */
    public final static String ERROR_REMOTE_SERVER_FAIL = "error.remote.server.fail";
    /** 缺少必须的参数 */
    public final static String ERROR_ILLEGAL_ARGUMENT = "error.illegal.argument";
    /** 参数类型错误 */
    public final static String ERROR_ILLEGAL_ARGUMENT_TYPE = "error.illegal.argument.type";
    /** 参数值不在允许的范围内错误 */
    public final static String ERROR_ILLEGAL_ARGUMENT_VALUE = "error.illegal.argument.value";
    /** 请求参数值不允许错误 */
    public final static String ERROR_ARGUMENT_VALUE_NOT_ALLOW = "error.argument.value.not.allow";
    /** 程序错误，请检查代码及配置，通过控制台查看错误详细信息 */
    public final static String ERROR_DEVELOP_STAGE = "error.develop.stage";
    /** 数据库操作失败 */
    public final static String ERROR_OPERATE_DB_FAIL = "error.operate.db.fail";
    /** 数据不正确 */
    public final static String ERROR_DB_DATA_FAIL = "error.db.data.fail";
    /** 数据值存在错误 */
    public final static String ERROR_DB_DATA_VALUE_FAIL = "error.db.data.value.fail";
    /** 系统配置错误 */
    public final static String ERROR_CONFIG_ERROR = "error.config.error";
    /** xml转化成对象失败 */
    public final static String ERROR_TRANSFER_XML_TO_OBJ = "error.transfer.xml.to.obj";
    /** 对象转化成xml失败 */
    public final static String ERROR_TRANSFER_OBJ_TO_XML = "error.transfer.obj.to.xml";
    /** xml-对象转换工具jaxb上下文创建失败 */
    public final static String ERROR_CREATE_JAXB_CONTEXT_FAIL = "error.create.jaxb.context.fail";
    /** 未满足条件，不允许的操作 */
    public final static String ERROR_NOT_ALLOW = "error.not.allow";
    /** 未满足条件，不允许的操作 */
    public final static String ERROR_SECU_ACC_AUTH_NOT_ENOUGH = "error.secu.acc.auth.not.enough";

    /**
     * 公共服务错误码。
     */
    /** 生成树失败。 */
    public final static String ERROR_TREE_BUILDER_FAIL = "error.tree.builder.fail";
    /** 更新失败,无此记录或记录已被修改 */
    public static final String ERROR_UPDATE_OBJ_NOT_FOUND = "error.update.obj.not.found";
    /** 操作失败,记录已锁定,可能由于他人同时操作,请刷新后重试 */
    public static final String ERROR_HAS_BEEN_LOCK = "error.has.been.lock";

    /**
     * 服务类错误码。
     */
    /** 查询账户树发生数据库错误。 */
    public final static String ERROR_TREE_QUERY_FAIL = "error.tree.query.fail";
    /** 查询业务日期发生数据库错误。 */
    public final static String ERROR_GET_BUSSINESS_DATE_FAIL = "error.get.bussiness.date.fail";
    /** 加载账户树发生未预料错误。 */
    public final static String ERROR_ACC_GETACCSECUTREE_FAIL = "error.acc.getaccsecutree.fail";
    /** 转换证券账户树为前台展示格式发生未预料错误。 */
    public final static String ERROR_ACC_TRANSFORM_ACCSECUTREE_FAIL = "error.acc.transform.accsecutree.fail";
    /** 组建树发生错误-找不到父节点错误。 */
    public final static String ERROR_ACC_GETACCSECUTREE_PARENTNODE_NOTFOUND = "error.acc.getaccsecutree.parentnode.notfound";
    /** 转换资产分类树为前台展示格式发生未预料错误。 */
    public final static String ERROR_ASSET_TRANSFORM_ACCSECUTREE_FAIL = "error.asset.transform.accsecutree.fail";

    /**
     * 结算类
     */
    /** 指令不允许复核 */
    public final static String ERROR_INST_NOT_ALLOW_REVIEW = "error.inst.not.allow.review";
    /** 已实际结算的指令不允许抹账 */
    public final static String ERROR_INST_NOT_ALLOW_ERASE = "error.inst.not.allow.erase";
    /** 已确认指令不允许删除 */
    public final static String ERROR_INST_NOT_ALLOW_DELETE = "error.inst.not.allow.delete";
    /** 指令已复核，请先抹账 */
    public final static String ERROR_INST_CANNOT_OPER_FINISH = "error.inst.cannot.oper.finish";

    /**
     * 前台参数错误码。
     */
    /** 交易对手类型非法 */
    public final static String ERROR_INPUT_TRADE_ILLEGAL_PARTY_TYPE = "error.input.Trade.illegal.party.type";
    /** 交易类型非法 */
    public final static String ERROR_INPUT_TRADE_ILLEGAL_TRADE_TYPE = "error.input.Trade.illegal.Trade.type";
    /** 内部证券账号不能为空 */
    public final static String ERROR_INPUT_TRADE_SECU_ACC_NOT_NULL = "error.input.Trade.secu.acc.not.null";
    /** EndDetail不能为空 */
    public final static String ERROR_INPUT_TRADE_ORD_DATE_NOT_NULL = "error.input.Trade.ord.date.not.null";
    /** 外部资金账户不能为空 */
    public final static String ERROR_INPUT_TRADE_EXT_CASHACC_NOT_NULL = "error.input.Trade.ext.cashacc.not.null";
    /** 内部资金账户不能为空 */
    public final static String ERROR_INPUT_TRADE_CASHACC_NOT_NULL = "error.input.Trade.cashacc.not.null";
    /** 外部证券账户不能为空 */
    public final static String ERROR_INPUT_TRADE_EXT_SECUACC_NOT_NULL = "error.input.Trade.ext.secuacc.not.null";
    /** 内部证券账户不能为空 */
    public final static String ERROR_INPUT_TRADE_SECUACC_NOT_NULL = "error.input.Trade.secuacc.not.null";
    /** 交易对手不能为空 */
    public final static String ERROR_INPUT_TRADE_PARTY_TRADER_NOT_NULL = "error.input.Trade.party.trader.not.null";
    /** 交易工具代码不能为空 */
    public final static String ERROR_INPUT_TRADE_ICODE_NOT_NULL = "error.input.Trade.icode.not.null";
    /** 资产类型不能为空 */
    public final static String ERROR_INPUT_TRADE_ATYPE_NOT_NULL = "error.input.Trade.atype.not.null";
    /** 市场类型不能为空 */
    public final static String ERROR_INPUT_TRADE_MTYPE_NOT_NULL = "error.input.Trade.mtype.not.null";
    /** 金融工具名称不能为空 */
    public static final String ERROR_INPUT_TRADE_INAME_NOT_NULL = "error.input.Trade.iname.not.null";
    /** 交易金额不能为0 */
    public static final String ERROR_INPUT_TRADE_AMOUNT_NOT_NULL = "error.input.Trade.amount.not.null";
    /** 结算日期不能为空 */
    public static final String ERROR_INPUT_TRADE_SETTLE_DATE_NOT_NULL = "error.input.Trade.settle.date.not.null";
    /** 非工作日不能进行交易 */
    public static final String ERROR_INPUT_TRADE_ORDDATE_NOT_ALLOW = "error.input.Trade.ordate.date.notallow";
    /** 交易执行市场不能为空 */
    public static final String ERROR_INPUT_TRADE_EXEMARKET_NOT_NULL = "error.input.Trade.exemarket.not.null";
    /** 交易员不能为空 */
    public static final String ERROR_INPUT_TRADE_TRADER_NOT_NULL = "error.input.Trade.trader.not.null";
    /** 金融工具不能为空 */
    public static final String ERROR_INPUT_TRADE_INSTRUMENT_NOT_NULL = "error.intput.Trade.instrument.not.null";

    /** 交易债券全价不能为0 */
    public final static String ERROR_INPUT_TRADE_BOND_FULLPRICE_NOT_NULL = "error.input.Trade.bond.fullprice.not.null";
    /** 交易结算方式不能为空 */
    public final static String ERROR_INPUT_TRADE_SETTLE_TYPE_NOT_NULL = "error.input.Trade.settle.type.not.null";
    /** 交易净价不能为0 */
    public final static String ERROR_INPUT_TRADE_NETPRICE_NOT_NULL = "error.input.Trade.netprice.not.null";
    /** 中债估值不能为0 */
    public final static String ERROR_INPUT_TRADE_EVAL_NETPRICE_NOT_NULL = "error.input.Trade.eval.netprice.not.null";

    /** 交易序号不能为空 */
    public static final String ERROR_INPUT_TRADE_SYSORDID_NOT_NULL = "error.input.Trade.sysordid.not.null";
    /** 交易序号和交易单号不能同时为空不能为空 */
    public static final String ERROR_INPUT_TRADE_ID_NOT_NULL = "error.input.Trade.id.not.null";
    /** 无此交易单 */
    public static final String ERROR_UPDATE_TRADE_NOT_FOUND = "error.update.Trade.not.found";
    /** 存在重复的序号,更新了多条记录 */
    public static final String ERROR_UPDATE_TRADE_DUPLICATE_SYSORDID = "error.update.Trade.duplicate.sysordid";

    /** 非标产品利率乘数调整信息已存在 */
    public static final String ERROR_SAVE_CASHLB_RATE_MULTI_EXIST = "error.save.cashlb.rate.rate_multi.exist";

    /** 指令已符合不能承担 */
    public static final String ERROR_CANCEL_TRADE_MIAN_INST_STATUS_FINISH = "error.cacnel.Trade.main.inst.status.already.finish";

    /** 要保存的利率定义名称已存在 */
    public static final String ERROR_SAVE_DEPO_RATE_DEFINE_NAME_EXIST = "error.save.depo.rate.define.name.exist";

    /** 要保存的非标债券i_code已经存在 */
    public static final String ERROR_SAVE_CASHLB_ICODE_EXIST = "error.save.cashlb.i_code.exist";

    /** 要修改的同业理财i_code不存在 */
    public static final String ERROR_CASHLBFINANCIAL_UNEXIST = "error.cashlbFinancial.unexist";

    /**
     * 要保存的非标债券i_name已经存在
     */
    public static final String ERROR_SAVE_CASHLB_INAME_EXIST = "error.save.cashlb.i_name.exist";

    /** 要保存的债券i_code已经存在 */
    public static final String ERROR_SAVE_BOND_ICODE_EXIST = "error.save.bond.i_code.exist";

    /** 要保存的净值型项目资产i_code已经存在 */
    public static final String ERROR_SAVE_EQUITY_ICODE_EXIST = "error.save.equity.i_code.exist";

    /** 要保存的利率信息的i_code已经存在 */
    public static final String ERROR_SAVE_TIR_ICODE_EXIST = "error.save.tir.i_code.exist";

    /** 要保存的利率行情信息已经存在 */
    public static final String ERROR_SAVE_TIR_SERIES_EXIST = "error.save.tir_series.exist";

    /** 要保存的外部证券账户账号已存在 */
    public static final String ERROR_SAVE_SECU_ACC_EXT_EXHACC_EXIST = "error.save.secu_acc_ext.exhacc.exist";

    /** 托管市场已存在外部证券账号 */
    public static final String ERROR_SAVE_SECU_ACC_EXT_HOST_MARKET_EXIST = "error.save.secu_acc_ext.host_market.exist";

    /** 要保存的产品分类已经存在 */
    public static final String ERROR_SAVE_PCLASS_EXIST = "error.save.pclass.exist";

    /** 要保存的外部资金账户账号exhAcc已经存在 */
    public static final String ERROR_SAVE_ACCOUNT_EXT_EXHACC_EXIST = "error.save.account_ext.exhacc.exist";

    /** 要保存的资管计划名称已经存在 */
    public static final String ERROR_SAVE_ASSET_MANAGER_PLAN_NAME_EXIST = "error.save.asset_manager_plan_name.exist";

    /** 要删除的债券已经存在业务余额信息 */
    public static final String ERROR_DELETE_BOND_BALANCE_EXIST = "error.delete.bond.balance.exist";

    /** 要删除的债券中包含已经存在业务余额信息的债券 */
    public static final String ERROR_DELETE_BOND_HAS_BALANCE_EXIST = "error.delete.bond.has.balance.exist";

    /** 要删除的利率型项目已经存在业务余额信息 */
    public static final String ERROR_DELETE_CASHLB_BALANCE_EXIST = "error.delete.cashlb.balance.exist";

    /** 要删除的利率型项目中包含已经存在业务余额信息的利率型项目 */
    public static final String ERROR_DELETE_CASHLB_HAS_BALANCE_EXIST = "error.delete.cashlb.has.balance.exist";

    /** 部分删除成功，已经使用的利率定义，将不会删除 */
    public static final String INFO_DEPOSIT_RATE_PART_DELETE_SUCCESS = "info.depositRate.part_delete.success";
    /**
     * 调用webservice接口错误码
     */
    /** 日终的webservice错误 */
    public static final String ERROR_WEBSERVICE_DAYEND = "error.webservice.dayend";
    public static final String ERROR_WEBSERVICE_CREATE_FAIL = "error.webservice.create.fail";

    /** 生成FPML */
    public final static String ERROR_CREATE_FPML_STARTDATE_NOT_NULL = "error.create.fpml.start_date.not_null";
    public final static String ERROR_CREATE_FPML_MTRDATE_NOT_NULL = "error.create.fpml.mtr_date.not_null";
    public final static String ERROR_CREATE_FPML_PAYMENTFREQ_NOT_NULL = "error.create.fpml.payment_freq.not_null";
    public final static String ERROR_CREATE_FPML_DAYCOUNTER_NOT_NULL = "error.create.fpml.daycounter.not_null";
    public final static String ERROR_CREATE_FPML_CURRENCY_NOT_NULL = "error.create.fpml.currency.not_null";

    /** 流程场景 */
    /** 审批场景被引用,不能停用 */
    public static final String ERROR_TRADE_SCENES_HAS_REFERENCED = "error.Trade.scenes.has.referenced";

    public static final String ERROR_LIMIT_TMPT_FILTER_INDEX_ERROR = "error.limit.tmpt.filter.index.error";

}

